package com.hpeu_12.app;

import java.util.Scanner;

/**
 * 家庭收支结账软件
 * @author Administrator
 *
 */
public class app2 {
	private static int principal = 1000;
	//记录语句
	private static String record = "\n收支明细\t\t账户金额\t\t收支金额\t\t说    明\n";
	//用于保存记录语句
	private static StringBuffer sb = new StringBuffer();
	//创建输入对象
	private static Scanner sc = new Scanner(System.in);
	
	/**
	 *  主方法
	 * @param args
	 */
	public static void main(String[] args) {
		// 将语句加到StringBuffer对象sb里
		sb.append(record);
		// 定义循环标志位，用于退出时跳出循环
		boolean loopFlag = true;
		do {
			// 显示菜单
			view();
			// 接收菜单选项的编号
			int menuCode = getMenuCode();
			// 选择菜单执行相应内容
			switch(menuCode) {
				case 1:
					// 打印收支明细
					System.out.println(sb);
					break;
				case 2:
					// 添加收入记录
					Second();
					break;
				case 3:
					// 添加支出记录
					Third();
					break;
				case 4:
					// 退出系统
					System.out.print("是否确认退出(Y/N)：");
					// 接收字符Y或N
					char c = getYesOrNo();
					// 接收到Y时给循环标志位赋值False跳出循环退出系统
					if(c=='Y') loopFlag = false;
					break;
			}
		} while (loopFlag );
		System.out.println("谢谢使用!");
	}
	
	/**
	 * 打印菜单信息
	 */
	public static void view() {
		System.out.println("\n-------------------------------家庭收支记账软件-------------------------------\n");
		System.out.println("1.收支明细");
		System.out.println("2.收入金额");
		System.out.println("3.支出金额");
		System.out.println("4.退       出\n");
		System.out.print("请输入选择序号：");
	}
	public static int getMenuCode() {
		int number =sc.nextInt();
		int menuCode =0;
			// 判断数字是否为1 2 3 4
			if (number==1 || number==2 || number==3 || number==4) {
				menuCode=number;
			}else {
				System.out.print("没有所选项，请重新输入：");
			}
		
		return menuCode;
	}	
   //获取字母Y  N
	public static char getYesOrNo() {
		char c;
		for(;;) {
			// sc.next() 接收字符串    toUpperCase() 字符串转大写  charAt(0) 截取第一个字符
			c = sc.next().toUpperCase().charAt(0);
			// 判断截取字符是否为Y  N
			if ('Y' == c || 'N' == c) {
				break;
			}else {
				System.out.print("没有所选项，请重新输入：");
			}
		}
		return c;
	}
	
	//添加收入记录
	public static void Second() {
		System.out.print("本次收入金额：");
		// 收入金额
		int income = sc.nextInt(); 
		// 本金 = 本金 + 支出金额
		principal += income;
		System.out.print("本次收入说明：");
		// 说明文字
		String des = sc.next(); 
		String str = "  收入\t\t"+principal+"\t\t"+income+"\t\t"+des+"\n";
		sb.append(str);
	}
	
	//添加支出记录
	public static void Third() {
		System.out.print("本次支出金额：");
		// 支出金额
		int outlay = sc.nextInt(); 
		// 本金 = 本金 - 支出金额
		principal -= outlay;
		System.out.print("本次支出说明");
		// 说明文字
		String des = sc.next(); 
		String str = "  支出\t\t"+principal+"\t\t"+outlay+"\t\t"+des+"\n";
		sb.append(str);
	}
}
